const {
	insertSqlPublic
} = require('./global')
const db = require('../db/index')


// 查询商品列表
exports.getList = async (req, res) => {
	try {
		// 等待从连接池中获取一个连接
		const connection = await db.getConnection();
		try {
			const sql = `SELECT * FROM cc_goods order by price`;
			// console.log(sql)
			const [rows] = await connection.query(sql);
			// 把型号（公母）、详情图数据处理成数组
			rows.forEach(item => {
				item.specs_male = item.specs_male.split(',').map((itm, idx) => {
					let num = parseFloat(itm.trim());
					if (idx === 0)
						return num.toFixed(1) //重量
					else
						return num //数量
				});
				item.specs_female = item.specs_female.split(',').map((itm, idx) => {
					let num = parseFloat(itm.trim());
					if (idx === 0)
						return num.toFixed(1) //重量
					else
						return num //数量
				});
				item.detailPic = item.detailPic.split(',');
				item.mainPic = [item.mainPic];
			});

			res.json({
				status: 200,
				message: '成功',
				data: rows
			});
		} catch (e) {
			console.error('Query error:', e);
			res.status(500).json({
				status: 500,
				message: e.message
			});
		} finally {
			// 无论查询是否成功，都释放连接
			connection.release();
		}
	} catch (err) {
		console.error('Database connection error:', err);
		res.status(500).json({
			status: 500,
			message: '数据库连接错误'
		});
	}
}


//新增
exports.addGoods = async (req, res) => {
	try {
		// 等待从连接池中获取一个连接
		const connection = await db.getConnection();
		try {
			const params = req.body;
			// console.log(params)
			const sql = await insertSqlPublic('cc_goods', 'crab_card', params, null);

			// 执行 SQL 语句
			const [rows] = await connection.execute(sql);
			if (rows.affectedRows === 1) {
				res.json({ // 使用 201 表示 Created
					status: 200,
					message: '成功',
					data: rows
				});
			} else {
				res.status(400).json({ // 使用 400 表示 Bad Request
					status: 400,
					message: '插入失败'
				});
			}
		} catch (e) {
			console.error('Query error:', e);
			res.status(500).json({
				status: 500,
				message: e.message
			});
		} finally {
			// 无论查询是否成功，都释放连接
			connection.release();
		}
	} catch (err) {
		console.error('Database connection error:', err);
		res.status(500).json({
			status: 500,
			message: '数据库连接错误'
		});
	}
};


//删除
exports.deleteGoods = async (req, res) => {
	try {
		// 等待从连接池中获取一个连接
		const connection = await db.getConnection();
		try {
			const params = req.body;
			// console.log(params)
			const sql = "delete from cc_goods where id=?";

			// 执行 SQL 语句
			const [rows] = await connection.execute(sql, [params.id]);
			if (rows.affectedRows === 1) {
				res.json({ // 使用 201 表示 Created
					status: 200,
					message: '删除成功',
					data: rows
				});
			} else {
				res.status(400).json({ // 使用 400 表示 Bad Request
					status: 400,
					message: '删除失败'
				});
			}
		} catch (e) {
			console.error('Query error:', e);
			res.status(500).json({
				status: 500,
				message: e.message
			});
		} finally {
			// 无论查询是否成功，都释放连接
			connection.release();
		}
	} catch (err) {
		console.error('Database connection error:', err);
		res.status(500).json({
			status: 500,
			message: '数据库连接错误'
		});
	}
};

//修改
exports.editGoods = async (req, res) => {
	try {
		// 等待从连接池中获取一个连接
		const connection = await db.getConnection();
		try {
			const params = req.body;
			// console.log(params)
			const sql = "update cc_goods set name = ?, price = ?, specs_male = ?, specs_female = ?, mainPic = ?, detailPic = ? WHERE id = ?";

			// 执行 SQL 语句
			const [rows] = await connection.execute(sql, [params.name, params.price, params.specs_male.join(","), params.specs_female.join(","), params.mainPic.join(""), params.detailPic.join(","), params.id]);
			if (rows.affectedRows === 1) {
				res.json({ // 使用 201 表示 Created
					status: 200,
					message: '修改成功',
					data: rows
				});
			} else {
				res.status(400).json({ // 使用 400 表示 Bad Request
					status: 400,
					message: '修改失败'
				});
			}
		} catch (e) {
			console.error('Query error:', e);
			res.status(500).json({
				status: 500,
				message: e.message
			});
		} finally {
			// 无论查询是否成功，都释放连接
			connection.release();
		}
	} catch (err) {
		console.error('Database connection error:', err);
		res.status(500).json({
			status: 500,
			message: '数据库连接错误'
		});
	}
};